#!/bin/bash
app_env=${1:-development}

# 性能优化：清理缓存
clean_cache() {
    echo "🧹 清理缓存文件..."
    rm -rf node_modules/.vite
    rm -rf dist
    rm -rf .vite
    echo "✅ 缓存清理完成"
}

# 性能优化：安装依赖
install_dependencies() {
    echo "📦 安装项目依赖..."
    if [ -f "package-lock.json" ]; then
        npm ci --production=false
    else
        npm install
    fi
    echo "✅ 依赖安装完成"
}

# 性能优化：检查依赖
check_dependencies() {
    echo "🔍 检查依赖更新..."
    npm outdated
    echo "✅ 依赖检查完成"
}

# Development environment commands
dev_commands() {
    echo "🚀 启动Vue开发环境 (性能优化版)..."
    
    # 清理缓存
    clean_cache
    
    # 安装依赖
    install_dependencies
    
    # 启动开发服务器
    echo "🔥 启动开发服务器..."
    npm run dev
}

# Production environment commands
prod_commands() {
    echo "🏭 启动Vue生产环境 (性能优化版)..."
    
    # 清理缓存
    clean_cache
    
    # 安装依赖
    install_dependencies
    
    # 构建生产版本
    echo "🔨 构建生产版本..."
    npm run build
    
    # 使用Vite的预览服务器
    echo "🌐 启动预览服务器..."
    npm run preview
}

# 性能分析模式
analyze_commands() {
    echo "📊 启动性能分析模式..."
    
    # 清理缓存
    clean_cache
    
    # 安装依赖
    install_dependencies
    
    # 构建并分析
    echo "🔍 构建并分析包大小..."
    npm run build:analyze
    
    # 启动预览服务器
    echo "🌐 启动预览服务器..."
    npm run preview
}

# 代码质量检查
lint_commands() {
    echo "🔍 代码质量检查..."
    
    # 安装依赖
    install_dependencies
    
    # 代码检查
    echo "📝 运行ESLint检查..."
    npm run lint
    
    # 代码格式化
    echo "✨ 运行Prettier格式化..."
    npm run format
    
    echo "✅ 代码质量检查完成"
}

# 显示帮助信息
show_help() {
    echo "法律援助平台启动脚本 (性能优化版)"
    echo ""
    echo "使用方法:"
    echo "  bash entrypoint.sh [环境]"
    echo ""
    echo "环境选项:"
    echo "  development (默认) - 开发环境"
    echo "  production         - 生产环境"
    echo "  analyze            - 性能分析模式"
    echo "  lint               - 代码质量检查"
    echo "  clean              - 清理缓存"
    echo "  help               - 显示帮助信息"
    echo ""
    echo "性能优化特性:"
    echo "  ✅ 智能缓存清理"
    echo "  ✅ 依赖优化安装"
    echo "  ✅ 构建性能分析"
    echo "  ✅ 代码质量检查"
    echo "  ✅ 开发体验优化"
}

# 检查环境变量以确定运行环境
case "$app_env" in
    "production"|"prod")
        echo "🏭 生产环境检测"
        prod_commands
        ;;
    "analyze")
        echo "📊 性能分析模式"
        analyze_commands
        ;;
    "lint")
        echo "🔍 代码质量检查模式"
        lint_commands
        ;;
    "clean")
        echo "🧹 清理模式"
        clean_cache
        ;;
    "help"|"-h"|"--help")
        show_help
        ;;
    "development"|"dev"|*)
        echo "🚀 开发环境检测"
        dev_commands
        ;;
esac
